<?php

require ('model.php');

/**
 *UsuarioModel
 *
 * Esta classe contém as funções de acesso a dados do objeto Produto.
 *
 * @package Produto
 * @category model
 * @author Janaína Paixão <janainap@gmail.com>
 * @copyright Janaína Paixão
 * @license Software Poprietário
 * @version v1.0
 * @since v1.0
 **/

class UsuarioModel extends Model
{

	/**
	 *ProdutoModel::selecionarProdutos()
	 *
	 * Seleciona os registros deProdutos noProduto de dados para listagem
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function selecionarUsuarios()
	{
		$SisUsuarios = new SisUsuarios();
        
       
        //Se foi feita uma busca---------------------------------------------------------------------------------------------------------------
        $busca = $this->postFormData('busca');
        $palavra = $this->postFormData('palavra');
        $ordenar = $this->getFormData('ordenar');
        
        
		if ($busca==1)
		{
		  
          if ($ordenar != ''){
              
              
              $palavra = $_SESSION['palavra'];
              
              $SisUsuarios->orderBy($ordenar);
            
           }else{
            
              //sessão necessaria em caso de ordenação
              session_start();
              $_SESSION['palavra'] = $palavra;  
            
           }
		   
           $SisUsuarios->where("nome LIKE '%" . $palavra. "%' OR login LIKE '%" . $palavra . "%'");
		}
		//-------------------------------------------------------------------------------------------------------------------------------------
		
        
        
        $SisUsuarios->order('nome asc');


		try
		{

			$SisUsuarios->find();
			//Lumine_Util::showResult($SisGrupoAcesso); exit();
			return $SisUsuarios;

		}
		catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			die( "Não foi possível listar os registros.<BR><BR>(" . $exception . ")");


		}


	}
    
    
    
    
    /**
	 *ProdutoModel::salvar()
	 *
	 * Salva as informações do usuário.
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function salvarUsuarios()
	{
	
       #Salvando usuários
	    $Tabela = new SisUsuarios();
        
        $Tabela->get($this->postFormData('codigoUsuario')); 
           
        //Recebendo dados
        foreach ($_POST as $key=>$value){
                    
           //carrega os valores para ser lançados no banco de dados
           if ($value){
                
                
               if( $key == 'senha'){
                     
                    if ( $value != '******'){
                     
                     $senha2="HpTarefas!@9".$value."545421212"; 
                     $senha = md5($senha2);
                     $Tabela->senha = $senha;   
                      
                    } 
                     
                     
               }else{
                    
                    $Tabela->$key = $value; 
               } 
                    
                
           } 
            
        }
       
       	try
		{
		
        	$Tabela->save();
            return $Tabela->codigoUsuario;    
           
		}
		catch (exception $e)
		{
            
			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			$json['sucesso'] = '2';
            $json['mensagem'] = "Não foi possível salvar os dados.<br>" . $exception; 
            echo json_encode($json);exit;
			


		} 
        
   } 
    
    
    
    /**
	 *ProdutoModel::selecionarProdutos()
	 *
	 * Seleciona os registros deProdutos noProduto de dados para listagem
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function selecionarUsuariosConectados()
	{
		$SisAutenticacao = new SisAutenticacao();
        
     
		try
		{
            $SisAutenticacao->where('logado > 0');
			$SisAutenticacao->find();
			//Lumine_Util::showResult($SisGrupoAcesso); exit();
			return $SisAutenticacao;

		}
		catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			die( "Não foi possível listar os registros.<BR><BR>(" . $exception . ")");


		}


	}
    
    
    
    
    /**
	 *ProdutoModel::selecionarProdutos()
	 *
	 * Seleciona os registros deProdutos noProduto de dados para listagem
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function verificarAvisos($codigoUsuario)
	{
		$TrMensagemUsuario = new TrMensagemUsuario();
        
     
		try
		{
            $TrMensagemUsuario->where('codigo_usuario ='. $codigoUsuario);
            $TrMensagemUsuario->where('lida < 1');
			$TrMensagemUsuario->find(true);
			//Lumine_Util::showResult($SisGrupoAcesso); exit();
			if($TrMensagemUsuario->numRows() > 0){
                return true;
			}else{
			    return false;  
			}

		}
		catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			die( "Não foi possível listar os registros.<BR><BR>(" . $exception . ")");


		}


	}
    
    
    
    
    /**
	 *ProdutoModel::selecionarProdutos()
	 *
	 * Seleciona os registros deProdutos noProduto de dados para listagem
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function selecionarUsuariosBasico($id){
	   
       
		$SisUsuarios = new SisUsuarios();
       
        $SisUsuarios->get($id)  ; 

		try
		{


			return $SisUsuarios;

		}
		catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			die( "Não foi possível listar os registros.<BR><BR>(" . $exception . ")");


		}


	}


	/**
	 *ProdutoModel::salvar()
	 *
	 * Salva as informações do usuário.
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function salvarGrupoAcesso($codigoUsuario){
	       
        $grupoAcesso = $this->postFormData('grupoAcesso');   
        $grupoLojas = $this->postFormData('grupoLojas');   
       
        #Registrando grupos de acesso
        $SisGrupoAcessoUsuario=new SisGrupoAcessoUsuario(); 
        $SisGrupoAcessoUsuario->codigoUsuario=$codigoUsuario; 
        
        try
        {
            $SisGrupoAcessoUsuario->delete();
            
        }catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			$json['sucesso'] = '2';
            $json['mensagem'] = "Não foi possível excluir os dados.<br>" . $exception; 
            echo json_encode($json);exit;
			


		}    
        
        unset($SisGrupoAcessoUsuario);
         
         
        $SisGrupoAcessoUsuario = new SisGrupoAcessoUsuario(); 
        $SisGrupoAcessoUsuario->codigoUsuario=$codigoUsuario;
        $SisGrupoAcessoUsuario->codigoGrupoAcesso=$grupoAcesso;

        try{
            
            $SisGrupoAcessoUsuario->insert();
            
        }catch (exception $e)
       	{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			$json['sucesso'] = '2';
            $json['mensagem'] = "Não foi possível salvar os dados.<br>" . $exception; 
            echo json_encode($json);exit;
	   }
            
            
        
        #Registrando as lojas
        
        $SisUsuarioLoja = new SisUsuarioLoja(); 
        $SisUsuarioLoja->codigoUsuario=$codigoUsuario;
        
        try
        {
            $SisUsuarioLoja->delete();
            
        }catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();
            
            $json['sucesso'] = '2';
            $json['mensagem'] = "Não foi possível excluir os dados.<br>" . $exception; 
            echo json_encode($json);exit;
            
			
			


		}
        
        unset($SisUsuarioLoja);
              
        $SisUsuarioLoja = new SisUsuarioLoja(); 
        $SisUsuarioLoja->codigoUsuario=$codigoUsuario;
        $SisUsuarioLoja->codigoLoja= $grupoLojas;

        try{
            
            $SisUsuarioLoja->insert();
            
        }catch (exception $e)
       	{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			$json['sucesso'] = '2';
            $json['mensagem'] = "Não foi possível salvar os dados.<br>" . $exception; 
            echo json_encode($json);exit;
	   }
         

	}
    
    
    
    
    
    /**
	 *ProdutoModel::salvar()
	 *
	 * Salva as informações do usuário.
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function salvarAjustes()
	{
		//Recebendo dados
		$codigoUsuario =  $_SESSION['codigo_usuario'];
		$loja = $this->postFormData('lojas');
		$codigoVendedor = $this->postFormData('vendedor');
		
        
        #Salvando usuários
		$SisUsuarios = new SisUsuarios();

		if (!empty($codigoUsuario))
		{
			//Obtendo registro do produto
			$SisUsuarios->get($codigoUsuario);


		}

        
       	try
		{
            $SisUsuarios->preferenciaLoja = $loja;
            $SisUsuarios->preferenciaVendedor = $codigoVendedor;
			$SisUsuarios->save();
            $codigoUsuario=$SisUsuarios->codigoUsuario;
            
            $_SESSION['preferencia_loja'] = $loja;
            $_SESSION['preferencia_vendedor'] = $codigoVendedor;
		

		}
		catch (exception $e)
		{

			$exception = $e->getCode() . " - ";
			$exception .= $e->getMessage() . "\n";
			$exception .= "Arquivo: " . $e->getFile() . "\n";
			$exception .= "Linha: " . $e->getLine();

			die("Não foi possível salvar os dados do usuário.<br>" . $exception);
			


		} 
        
        
	

	}

	


	/**
	 *ProdutoModel::selecionarDadosUsuario()
	 *
	 * Seleciona dados do usuário especificado no banco de dados
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 * @param int $codigoUsuario - Código doProduto cujos dados devem ser selecionados.
	 * @param int $orientacaoNavegacao - Indica se é para selecionar registro anterior ou seguinte
	 */
	public function selecionarDadosUsuario($id)
	{

		$SisUsuarios = new SisUsuarios();
		$SisUsuarios->get($id);

		$usuario = $SisUsuarios->toArray();


    	return $usuario;

	}


	/**
	 *ProdutoModel::selecionarDadosGrupoAcessoUsuario()
	 *
	 * Seleciona os grupos de acesso do usuário
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function selecionarDadosGrupoAcessoUsuario($id)
	{

		$SisGrupoAcessoUsuario = new SisGrupoAcessoUsuario();
		$SisGrupoAcessoUsuario->codigoUsuario = $id;
		$SisGrupoAcessoUsuario->find();

		while ($SisGrupoAcessoUsuario->fetch())
		{

			$json[] = $SisGrupoAcessoUsuario->codigoGrupoAcesso;

		}

		if (count($json) > 1)
		{
			return "\"" . implode("\",\"", $json) . "\"";
		} else
		{
			return $json[0];
		}
	}
    
    
    
    
    /**
	 *ProdutoModel::selecionarDadosGrupoLoja()
	 *
	 * Seleciona os grupos de acesso do usuário
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function selecionarDadosGrupoLoja($id)
	{

		$SisGrupoLoja = new SisUsuarioLoja();
		$SisGrupoLoja->codigoUsuario = $id;
		$SisGrupoLoja->find();

		while ($SisGrupoLoja->fetch())
		{

			$json[] = $SisGrupoLoja->codigoLoja;

		}

		if (count($json) > 1)
		{
			return "\"" . implode("\",\"", $json) . "\"";
		} else
		{
			return $json[0];
		}
	}




	/**
	 *ProdutoModel::obterGruposAcesso()
	 *
	 * Obtém lista de ingredientes
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function obterGruposAcesso()
	{
		$SisGrupoAcesso = new SisGrupoAcesso();
		$SisGrupoAcesso->order('nome asc');
		$SisGrupoAcesso->find(); //Lumine_Util::showResult($SisGrupoAcesso);


		return $SisGrupoAcesso;
	}
    
    
    
    
    /**
	 *ProdutoModel::obterGruposAcesso()
	 *
	 * Obtém lista de ingredientes
	 *
	 * @access public
	 * @author Janaína Paixão <janainap@gmail.com>
	 * @since  v1.0
	 */
	public function obterFiliais()
	{
		$Lojas = new Lojas();
		$Lojas->order('nome asc');
		$Lojas->find(); //Lumine_Util::showResult($SisGrupoAcesso);


		return $Lojas;
	}


}

?>